package cl.DAOs;

import org.hibernate.*;
import cl.POJOs.*;
import cl.DAOs.HibernateUtil;
import java.util.List;
import org.hibernate.criterion.Order;

public class EstudianteDAO {

    private Session session;
    private Transaction trans;

    private List<Estudiante> lstEstudiantes;

    public void Registrar(Estudiante es) throws Exception {
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            trans = session.beginTransaction();
            session.save(es);
            trans.commit();

        } catch (Exception ex) {
            trans.rollback();
            throw ex;
        } finally {
            session.close();
        }

    }

    public List<Estudiante> Listar() throws Exception {
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            Criteria cri = session.createCriteria(Estudiante.class);
            cri.addOrder(Order.asc("apellido"));
            lstEstudiantes = cri.list();
        } catch (Exception ex) {
            throw ex;
        }
        return lstEstudiantes;
    }
    public Estudiante verificarDatos (Estudiante estudiante) throws Exception{
        Estudiante est= null;
        
        try{
            session = HibernateUtil.getSessionFactory().openSession();
            String consulta = "From Estudiante Where rut= '"+estudiante.getRut()
                    +"' and clave ='"+estudiante.getClave()+"'";
            Query query = session.createQuery(consulta);
            if (!query.list().isEmpty()){
                est= (Estudiante) query.list().get(0);
            }
        }catch ( Exception e){
            throw e;
        }
        return est;
    
    
    }

}
